package com.lingyuan.discounts.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.Value;
import org.springframework.boot.autoconfigure.domain.EntityScan;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;

/**
 * @Author: Li Hao Xuan
 * @name: Coupon
 * @Description TODO
 */
@Data
@TableName("sms_coupon")
public class Coupon {
    /**
     * id
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    /**
     * 优惠卷类型[0->全场赠券；1->会员赠券；2->购物赠券；3->注册赠券]
     */
    @TableField(value = "coupon_type")
    private Integer couponType;
    /**
     * 优惠券图片
     */
    @TableField(value = "coupon_img")
    private String couponImg;
    /**
     * 优惠卷名字
     */
    @TableField(value = "coupon_name")
    private String couponName;
    /**
     * 数量
     */
    @TableField(value = "num")
    private Integer num;
    /**
     * 金额
     */
    @TableField(value = "amount")
    private String amount;
    /**
     * 每人限领张数
     */
    @TableField(value = "per_limit")
    private Integer perLimit;
    /**
     * 优惠方式 :
     * 0:满*钱减*钱
     * 1:满*钱打*折
     * 2:满*件减*钱
     * 3:满*件打*折
     */
    @TableField(value = "amount_type")
    private Integer amountType;
    /**
     * 开始时间
     */
    @TableField(value = "start_time")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date startTime;
    /**
     * 结束时间
     */
    @TableField(value = "end_time")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date endTime;
    /**
     * 使用类型[0->全场通用；1->指定分类；2->指定商品]
     */
    @TableField(value = "use_type")
    private Integer useType;
    /**
     * 备注
     */
    @TableField(value = "note")
    private String note;
    /**
     * 发行数量
     */
    @TableField(value = "publish_count")
    private Integer publishCount;
    /**
     * 已使用数量
     */
    @TableField(value = "use_count")
    private Integer useCount;
    /**
     * 领取数量
     */
    @TableField(value = "receive_count")
    private Integer receiveCount;
    /**
     * 领取的开始时间
     */
    @TableField(value = "enable_start_time")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date enableStartTime;
    /**
     * 领取的结束时间
     */
    @TableField(value = "enable_end_time")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date enableEndTime;
    /**
     * 优惠码
     */
    @TableField(value = "code")
    private String code;
    /**
     * 可以领取的会员等级[0->不限等级，其他-对应等级]
     */
    @TableField(value = "member_level")
    private Integer memberLevel;
    /**
     * 发布状态[0-未发布，1-已发布]
     */
    @TableField(value = "publish")
    private Integer publish;
}
